Digital Image Processing Note

数字图像处理小记

imadjust(f,stretchlim(f),[0.2 0.75],gamma)
J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)
I的类型:uint8 uint16 double

figure;imshow(f)

反转变化
对数变换:(原图动态范围过大,细节丢失,进行灰度压缩用对数变换)

g = c*log(1+double(f))
gs = im2uint8(mat2gray(g))
mat2gray 将值限定在范围[0 1]
Im2uint8 将值限定在[0 255] (便于保存)

幂次变换:gamma correction
y < 1;提高灰度级,变亮图像

分段对比度拉伸变换,分段线性变换
g = gscale(f,method,low,high)
%f:标定的图像;
method:full8【0 255】,full16【0 65535】,minmax

灰度级分层:(增强某个专门的特征)

直方图

1图像中不同灰度级的像素出现的次数
2一个灰度级为[0 l-1]图像的离散函数h(rk)=nk/n
n为像素总数,nk是灰度级rk的像素个数,rk是第k个灰度级
直方图反映的是总体性质:明暗程度、动态范围大小等
h = imhist(f,b)
-f输入图像 -b 灰度级个数default256
归一直方图 h = imhist(f,b)/numel(f) 【numel返回数组元素数目】
bar(horz,f,width)
horz和f同维数,width【0 1】
e.g:
h = imhist(f,25)
horz = linspace(0,255,25)%生成线性间距向量:y = linspace(x1,x2,n) 生成 n 个点
bar(horz,h)
set(gca,’xtick’,0:50:255)
set(gca,’ytick’,0:20000:60000)%gca:获取当前轴
axis([horzmin horzmax vertmin vertmax])

fhandle = @tanh;
fplot(fhandle,[-2,2],’:’)

直方图均衡化

【希望图像像素占有全部可能的灰度级且分布均匀,能够具有高对比度】
利用灰度级变换实现,将原始图的直方图变换为均匀分布的形式
减少图像的灰度级以换取对比度的加大
g = histeq(f,nlev)%ylim(‘auto’) xlim(‘auto’)

直方图规定化(匹配)

​ 指对一幅图像进行变换,使其直方图与另一副图像的直方图或特定函数形式的直方图相匹配

直方图均衡化&直方图规定化(匹配):
自动增强,效果不易控制,全图增强
有选择的增强,需给定直方图,可特定增强的结果

adapthisteq(f,param1,val1,param2,val2)%直方图匹配的方法来逐个处理图像中的小片
nuntiles:[r c]由向量的行和列指定小片数,至少为2
cliplimit:[0 1]内的标量,表示对比度强弱

空域滤波

线性非线性–平滑、锐化
作用:去除不重要的细节,减少噪声
分类: 线性滤波器:均值滤波器
非线性滤波器:统计排序滤波器
中值滤波器
最小值滤波器
中点滤波器

相关&卷积(180)—-填充0,相乘
理解卷积的意义
https://blog.csdn.net/chaipp0607/article/details/72236892?locationNum=9&fps=1

填充边界:fp = padarray(f,[r c],method,direction)
fp为填充后的图像,【r c】表示用于填充f的行和列数;
method:’symmetric’’replicate’’circular’
方向:’pre’ —每一维的第一个元素之前填充
‘post’—每一维的最后一个元素之后填充
‘both’—both

imfilter(f,w,’replivate’)//拉普拉斯
滤波模式 corr(相关滤波) conv(卷积滤波)
边界填充选项 p(值为零), ‘replicate’(复制图像边界外的值来扩展), ‘symmetric’(镜像填充),‘circular’(循环)
大小选项 full,same\rot90(w,k)将w旋转k*90\im2single、im2double、tofloat将f转为浮点型
线性平滑滤波器:减小图像尖锐灰度变化
加权平均:中心系数大周围系数小//高斯平滑,突出中心点在像素平滑后的权重,比均值的平滑效果更好
阈值的邻域平均法
非线性空间滤波:colfilt(f,[m n],’sliding’,fun)
padarray(f,[3 2],’replicate’,’post’)

锐化滤波器:

​ 突出灰度的过渡部分
​ 突出图像中的细节,增强被模糊的细节
​ 图像识别中分割前的边缘提取
​ 均值积分钝化,微分锐化
​ (边缘信息有着比周围像素更高的对比度,经过卷积后进一步增强这种对比度)

锐化滤波器:

​ 二阶微分滤波器–拉普拉斯算子(线性):与sobelXY不同之处在于边缘检测不限于x或y方向,强调的是灰度突变而减、加重灰度慢变化的区域
​ 一阶微分滤波器–梯度算子(非线性):roberts算子,sobel算子

生成滤波模板w = fspecial(‘type’,parameters):type-定时器的类型
fspecial(‘average’,[rc])//矩形平均滤波器
fspecial(‘disk’,r)半径为r的圆形平均滤波器
fspecial(‘laplacian’,alpha) —-3x3的拉普拉斯滤波器
gaussian,[r c],sig//高斯低通滤波器
motion,prewitt:垂直梯度滤波器;sobel:垂直梯度滤波器;unsharp

非线性滤波器:统计排序滤波器

​ 中值滤波器:[用像素领域内的中间值代替该像素]去除椒盐噪声,去噪声的同时可较好的保留边的锐度和图像的细节
​ 最大值滤波器:【最大值】去除椒噪声
​ 最小值滤波器:【最小值代替】去盐噪声
​ g = ordfilt2(f,order,domain)
​ -最小值滤波器 g = ordfilt2(f,1,ones(m,n))
​ -最大值滤波器 g = ordfilt2(f,mn,ones(m,n))
​ -中值滤波器 g = ordfilt2(f,median(1:m
n),ones(m,n))
​ g = medfilt2(f,[m n],padopt)
​ –[m n]为大小为mn的邻域
​ -中点滤波器–对高斯噪声和均匀噪声的效果更好g = medfilt2(f, [m n],padopt)
​ 邻域由domain中的非零元素指定,domian是一个由0,1组成的m
n矩阵,,计算时不使用的邻域对应于domain中的0像素

频率频率域滤波器(?)

​ 低频对应于图像变化缓慢的灰度分量,前面我们通过衰减高频成分来平滑图像。高频则对应于图像中变化快速的灰度变化。
​ 这些通常是物体的边缘及噪声。以下我们将通过高通滤波来实现图像的锐化。
​ 高通滤波会衰减傅立叶变换中的低频分量而不扰乱高频信息。
​ 对通用形式来讲,c=1,s=-1即为傅立叶变化(图像空间域转频域);c=1/MN,s=1即为逆变换(频域转空间域)

​ 低频对应的图像中变化不明显的部分,于是,图像就变的非常模糊。这在图像处理中也叫平滑滤波。
​ 高通滤波器所达到的效果。很明显,图像边缘增强了
https://blog.csdn.net/forrest02/article/details/55510711?locationNum=15&fps=1
​ -低通滤波器:使低频通过高频衰减的滤波器
​ 被低通滤波的图像比原始图像减少尖锐的细节部分而突出平滑过渡的部分
​ 对比空间域滤波的平滑处理,如均值滤波器

​ -高通滤波器:是高频通过低频衰减的滤波器
​ 被高通滤波的图像比原始图像少灰度级的平滑过渡而突出边缘等细节部分

关于网格:colormap,mesh(H(1:k:end,1:k:end))
grid off/on;axis off/on
观察点: view(az,el)

彩色图像:

​ 亮度:物体的反射率
​ 色调:光谱中光的波长相联系
​ 饱和度:与一定色调光的纯度有关,随白色光的加入饱和度下降
​ 色调和饱和度合称为色度
​ 彩色可用亮度和色度共同表示

彩色空间RGB CMY YIQ/YUV–面向硬设备的彩色模型

​ 面向视觉感知的彩色模型–HSI HSV
​ -YIQ
​ Y指亮度,即灰度值
​ I\Q指色度,描述色彩及饱和度
​ Y分量可提供黑白电视机的所有影像信息
​ -HSI
​ H hue表示色调
​ S saturation表示饱和度
​ I intensity表示密度,对应成像亮度和图像灰度
​ (亮度分量和色度分量是分开的)

伪彩色图像处理

​ 1亮度切割2从灰度到彩色的变换3频域滤波
从灰度到彩色的转换
​ 对任何输入像素的灰度级执行3个独立变换
​ 3个变换结构分别送入彩色监视器的红绿蓝个通道,产生合成图像


图像分割

灰度图像分割:

​ -基于灰度值的不连续性[亮度不连续变化,边界算法]和相似性
​ [制定准则将图像分割成相似的区域,区域算法阈值分割,区域分离与合并]
​ 图像像素灰度值的相似性,区域轮廓就是对象的边
间断检测:点线边
​ -点:
​ 设定阈值并计算高通滤波值R;R=0则说明当前检测点的灰度值和周围点相同
​ 当R值足够大时,说明该点的值与周围的值非常不同,|R|>T为孤立点
​ 用空域的高通滤波器来检测孤立点;w=[-1,-1,-1;-1,8,-1;-1,-1,-1]
​ g = abs(imfilter(double(f),w));
​ T = max(g(:));
​ g = g>= T;
​ -线:
​ 4个线检测模板
​ w = [2,-1,-1;-1 2 -1;-1 -1 2];
​ g = imfilter(double(f),w);

边缘检测:

​ 边缘:一组相连的像素集合,这些像素位于两个区域的边界(一阶二阶导数在识别图像边缘中的应用)
​ 在边缘斜面上,一阶导为正,其他区域为零
​ 边缘与黑色的交界处二阶导为正
​ 边缘与亮色的交界处,二阶导为负

​ 一阶梯度算子检测边的存在,对于亮的边,边的变化起点是正的,结束是负的
​ 二阶微分通过拉普拉斯来计算,在亮的一边是正的,在暗的一边为负的

​ -一阶导数检测图像一个点是否在边缘上
​ -二阶导数判断一个边缘的像素是在边缘的亮的一边还是暗的一边
​ -prewitt sobel算子是计算梯度最常用的算子
​ -高斯型拉普拉斯算子:
​ 对图像进行平滑处理
​ 目的是提供一幅用零交叉确定边缘位置的图像
​ 平滑处理减少了噪声的影响

Canny边缘检测算子

​ edge函数的边缘检测:找到亮度的一阶导数在比阈值大的地方;找到亮度的二阶导数有零交叉的地方
​ [g,t] = edge(f,’sobel’,’vertical\horizontal’)
​ [g,t] = edge(f,’log’,T,sigma)
​ [g,t] = edge(f,’canny’,T,sigma)

​ sh = graythresh(image)%otsu最佳全局阈值处理
​ img = im2bw(image,sh)%将灰度图像转换为二值图

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2018-2021 Quincy
  • Visitors: | Views:

请我吃串串呗~

支付宝
微信